This invention relates to an automatic installation of a communication adapter for a computer.
xe2x80x9cUniversal Serial Busxe2x80x9d (USB) refers to a particular standard that has been adopted by the electronics industry for establishing a communication between a computer and a number of peripheral devices. A full description of the USB standard can be found in xe2x80x9cUniversal Serial Bus Specification Revision 1.1xe2x80x9d dated Sep. 23, 1998 and available from the USB Implementers Forum, Inc. The USB provides 12 megabit per second digital communication over standardized five-conductor cables, which connect devices that are less than 20 feet apart, and also provides limited power connections between devices. One of the most important applications for USB communication is the connection ordinary personal computers, such as Microsoft Windows(copyright) based personal computers, with peripheral equipment including input/output devices such as keyboards, and communication devices such as modems and Ethernet network interface adapters.
The USB standard not only dictates low-level communication characteristics, but also specifies how a USB-compliant device identifies itself to a host computer to which it is connected. In particular, when a USB device is attached to a computer, a startup protocol is defined in which the host computer receives information about the device.
For the host computer to make use of the functionality of the USB device, it generally requires software that is specific to that device, or at least specific to class of devices to which that device belongs and which share a common generic interface. This software is typically referred to as xe2x80x9cdriverxe2x80x9d software. For example, if a pointing mouse connects to the USB port of a host computer, the host computer must understand that the data it inputs through the port must be used to control the movement of a pointer across the computer display. It must therefore relay this data, in the correct form, to the part of a governing program, typically an operating system, which controls these movements.
Referring to FIG. 1, when a USB device, such as a communication adapter 110, is first attached to an interface 154 on a computer 150, the operating system executing on that computer typically determines whether it has available the appropriate driver software for that device in its storage 156 based on the identification of the device it receives over the USB connection. If it does not, the operating system may request that the user insert a removable storage 160, such as a floppy disk, that has the driver so that it can be installed onto computer 150. This procedure is typically used on the Microsoft Windows(copyright) 98 operating system. Communication adapter 110 then provides communication services using the driver for communicating between computer 150 and other computers on a communication system 120, such as the Internet.
Drivers for some devices are preloaded on certain operating system. For example, a generic keyboard driver, which supports keyboards from a variety of manufacturers, may already be loaded. If such a driver is loaded, when a USB keyboard is attached to the host computer, the user may not have to supply a specific driver for the keyboard if it is compatible with the generic driver.
In situations in which the operating system of a host computer does not have a suitable driver already available for a USB, using prior approaches, a user may be asked to insert a disk containing the driver so that it can be loaded. In certain situations, the user may not have such a disk. In a general aspect, the invention is a method for coupling a USB device, in particular coupling a USB device which provides an Ethernet interface, to a host computer without necessarily requiring that a driver for that USB device be already available to the computer or requiring that the user provide a disk with the driver. The method includes the USB device emulating another type of device, such as keyboard device, for which the host computer does have a suitable driver and passing a driver for the device over the USB interface to the computer while emulating the device. After the driver is loaded onto the computer, the devices makes use of the driver to operate in its native made rather than emulating another device.
In one aspect, in general, the invention is a method for operating a peripheral device. The method includes coupling the peripheral device to a computer and sending a first device identification from the peripheral device to the computer. The method then includes emulating a device of a type determined by the first device identification, including transferring a driver from the peripheral device to the computer. Then, the peripheral device sends a second device identification from the peripheral device to the computer, such that the sent device identification is for a device supported by the driver transferred to the computer. The peripheral device is then operate by interacting with the driver on the computer.
The invention can include one or more of the following features.
Sending the first device identification includes sending an identification of a keyboard device.
Transferring the driver to the computer includes emulating keystrokes for enterring data on the computer.
Operating the peripheral device to interact with the driver includes providing communication services between the computer and a communication system.
Providing communication services includes passing Ethernet signals between the peripheral device and the communication system.
Coupling the peripheral device to the computer includes establishing communication between the peripheral device and the computer according to a Universal Serial Bus (USB) standard.
Sending the first device identification includes sending an identification of a storage device.
Transferring a file from the storage device to the computer.
In another aspect, in general, the invention is a peripheral device. The device has an interface for coupling the peripheral device to a computer, and a processor. The processor is programmed (a) to emulate a first type of device, (b) to transfer a driver for a second type of device through the interface to the computer while emulating the first type of device, and (c) to operate as the second type of device after transferring the driver to the computer.
The device can include one or more of the following features:
The interface includes a Universal Serial Bus interface.
The first type of device is a keyboard device.
The first type of device is a storage device.
The second type of device is a communication adapter.
The second type of device comprises an Ethernet communication adapter.
The invention has an advantage of neither requiring a specific device driver to be preloaded on the computer to use the USB device nor requiring that the user supply a disk with such a driver. For example, a hotel may equip each room with a cable to which guests can connect their laptop computers, and over which the computer can communicate over the Internet. A guest connects a USB device between his computer and the cable to provide provides an interface to the Internet. For example, if communication over the cable is according to the Ethernet standard, the USB device can be a USB Ethernet adapter that operates according to the present invention. According to the present invention, the guest does not have to manually install software on the computer, a procedure that may be time consuming, prone to errors, or beyond the expertise of the guest.